package com.kabao.javafx.fontdemo;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.stage.Stage;

import java.io.IOException;


public class FxFontApp extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage pirmaryStage) throws Exception {
        testThirdFontCss(pirmaryStage);
    }


    //测试字体
    public void testFont(Stage pirmaryStage){
        //Stage 舞台
        Label label =new Label("Hell 123 ! 落霞与孤鹜齐飞");
//        label.setFont(Font.font("NovaMono for Powerline",35));
        /**
         * 要使用字体
         * 1.系统要有该字体
         * 2.字体要支持相应的样式 比如 加粗或倾斜，否则会不生效
         */
        label.setFont(Font.font("Verdana", FontWeight.BOLD, FontPosture.ITALIC,35));
        pirmaryStage.setScene(new Scene(new BorderPane(label),520,380));
        pirmaryStage.setTitle("Fx font App");
        pirmaryStage.show();
    }
    public void testThirdFont(Stage pirmaryStage){
        //Stage 舞台
        Label label =new Label("Hell 123 ! 落霞与孤鹜齐飞");

        Font font = Font.loadFont(getClass().getResourceAsStream("/font/AaBaDaoKai-2.ttf"), 35);

        label.setFont(font);

        pirmaryStage.setScene(new Scene(new BorderPane(label),520,380));
        pirmaryStage.setTitle("Fx font App");
        pirmaryStage.show();
    }

    /**
     * 通过fmll加载css
     * 方式1
     * //String externalForm = getClass().getResource("/css/fx-app.css").toExternalForm();
     *         scene.getStylesheets().setAll(externalForm);
     * 方式2
     * 在fxml中直接关联css
     *
     * @param pirmaryStage
     * @throws IOException
     */
    public void testThirdFontCss(Stage pirmaryStage) throws IOException {
        //Stage 舞台,通过Fxml加载
        Parent root = FXMLLoader.load(getClass().getResource("/fxml/fx-app.fxml"));
        Scene scene = new Scene(root, 520, 380);
        //加载css
        String externalForm = getClass().getResource("/css/fx-app.css").toExternalForm();
        scene.getStylesheets().setAll(externalForm);

        pirmaryStage.setScene(scene);
        pirmaryStage.setTitle("Fx font App third css");
        pirmaryStage.show();
    }
}